100 REM <<< CHECK WRITER >>> 110 REM WAYNE ARNETT 120 REM 130 PRINT CHR$(142) 140 F1$=CHR$(133):F7$=CHR$(136):REM KEY 1,F1$:KEY 7,F7$ 150 DIM C$(24,3),C(24):REM CHECKS 160 DIM D$(5,2),D(5):REM DEPOSITS 170 DIM W$(5):REM NUMERALS/WORDS 180 DIM M$(12):REM MONTHS 190 DIM A1$(19),A2$(9) 200 FOR I=1TO19:READ A1$(I):NEXT 210 FOR I=2TO9:READ A2$(I):NEXT 220 FOR I=1TO12:READ M$(I):NEXT 230 FOR I=1TO5:FOR J=1TO3 STEP2 240 READ C$(I,J):NEXTJ,I 250 REM 260 DATA ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,ELEVEN,TWELVE 270 DATA THIRTEEN,FOURTEEN,FIFTEEN,SIXTEEN,SEVENTEEN,EIGHTEEN,NINETEEN 280 REM 290 DATA TWENTY,THIRTY,FORTY,FIFTY,SIXTY,SEVENTY,EIGHTY,NINETY 300 REM 310 DATA JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC 320 REM 330 DATA MORTGAGE COMPANY,"ACCOUNT #" 340 DATA ELECTRIC COMPANY,"ACCOUNT #" 350 DATA WATER COMPANY,"ACCOUNT #" 360 DATA GAS CREDIT CARD,"ACCOUNT #" 370 DATA MASTERCHARGE,"ACCOUNT #" 380 REM ** 390 REM *** INITIAL FORMAT 400 REM ** 410 PRINT"[147]ENTER INFORMATION FOR CHECKS & REGISTER":PRINT 420 INPUT "MONTH (1-12)";MO 430 INPUT "DAY (1-31)";DA$ 440 INPUT "TWO-DIGIT YEAR";YR$ 450 DY$=M$(MO)+" "+DA$+" "+YR$ 460 DZ$=M$(MO)+" "+DA$+", 19"+YR$ 470 PRINT:INPUT"HOW MANY DEPOSITS (MAX 5)";ND 480 IF ND>5 THEN470 490 IF ND=0 THEN PRINT:GOTO580 500 FOR I=1TO ND 510 PRINT:INPUT"DATE (MMDD)";DT$ 520 IF LEN(DT$)<>4 THEN510 530 D$(I,1)=LEFT$(DT$,2)+"/"+RIGHT$(DT$,2) 540 INPUT "AMOUNT ";D(I):REM 5 SPCS 550 TD=TD+D(I) 560 G=D(I):GOSUB1750:D$(I,2)=G$ 570 NEXTI:PRINT"[147]" 580 G=TD:GOSUB1750:TD$=G$ 590 INPUT"BEGINNING BALANCE";BB 600 G=BB:GOSUB1750:BB$=G$ 610 PRINT:INPUT"BANK CHARGES";BC 620 G=BC:GOSUB1750:BC$=G$ 630 PRINT:INPUT"OTHER DEDUCTIONS";OD 640 G=OD:GOSUB1750:OD$=G$ 650 PRINT:INPUT"FIRST CHECK NUMBER";FCN 660 REM ** 670 REM *** SET UP CHECKS 680 REM ** 690 PRINT"[147]ENTER INFORMATION FOR PRINTING CHECKS." 700 PRINT"TO SKIP ONE, HIT 'RETURN' WITHOUT" 710 PRINT"ENTERING ANY NUMBERS." 720 CN=FCN:RC=1 730 FOR I=1TO5 740 PRINT:PRINT " CHECK NO.";CN;"[157] " 750 PRINT"PAYEE: ";C$(I,1) 760 INPUT"AMOUNT ";C(I) 770 IF C(I)<1 THEN800 780 IF C(I)>=10000 THEN760 790 GOSUB890:CN=CN+1 800 NC=NC+1:NEXTI 810 RC=0 820 PRINT"[147]AFTER WRITING LAST CHECK, HIT 'RETURN'" 830 PRINT"WITHOUT AN ENTRY FOR PAYEE." 840 PRINT:PRINT " CHECK NO.";CN;"[157] " 850 INPUT"PAYEE ";C$(I,1) 860 IF C$(I,1)=""THEN980 870 INPUT"AMOUNT";C(I) 880 IF C(I)<1 OR C(I)>=10000 THEN870 890 TC=TC+C(I) 900 G=C(I):GOSUB1750:C$(I,2)=G$ 910 IF RC THEN RETURN 920 INPUT"MEMO ";C$(I,3) 930 IF LEN(C$(I,3))>20 THEN920 940 I=I+1:CN=CN+1:NC=NC+1 950 IF I>24 THEN980 960 K=I-6:IF K/4=INT(K/4)THEN PRINT"[147]" 970 GOTO840 980 G=TC:GOSUB1750:TC$=G$ 990 EB=BB+TD-BC-OD-TC 1000 G=EB:GOSUB1750:EB$=G$ 1010 REM ** 1020 REM *** PRINT CHECKS 1030 REM ** 1040 PRINT"[147]BE SURE THE ASTERISKS WERE PRINTED AT" 1050 PRINT"TOP OF FIRST CHECK. PRESS F1 TO PROCEED" 1060 PRINT"WITH PRINTING. F7 TO TRY AGAIN." 1070 CLOSE3:CN=FCN:OPEN3,4 1080 PRINT#3,"*****" 1090 GET R$:IF R$="" THEN1090 1100 IF R$=F1$ THEN1130 1110 IF R$=F7$ THEN1080 1120 GOTO1090 1130 SP=2:GOSUB1780 1140 FOR I=1 TO NC 1150 IF C(I)<1 THEN1320 1160 PRINT#3,TAB(55);"#";CN 1170 SP=1:GOSUB1780 1180 PRINT#3,TAB(55)DY$ 1190 C$(I,1)=LEFT$(C$(I,1),44) 1200 FOR J=1 TO 45-LEN(C$(I,1)) 1210 C$(I,1)=C$(I,1)+" ":NEXTJ 1220 SP=4:GOSUB1780 1230 PRINT#3,TAB(6);C$(I,1); 1240 PRINT#3,TAB(10);C$(I,2) 1250 SP=2:GOSUB1780 1260 GOSUB1810 1270 PRINT#3,TAB(6);W$ 1280 SP=4:GOSUB1780 1290 PRINT#3,TAB(6);C$(I,3) 1300 SP=5:GOSUB1780 1310 CN=CN+1 1320 NEXTI 1330 CLOSE3 1340 REM ** 1350 REM *** PRINT REGISTER 1360 REM ** 1370 PRINT"[147] TO PRINT A SUMMARY FOR YOUR RECORDS," 1380 PRINT" INSTALL REGULAR PAPER IN PRINTER." 1390 PRINT:PRINT TAB(13);"F1 TO PRINT" 1400 PRINT TAB(9);"F7 TO EXIT PROGRAM" 1410 GET R$:IF R$=""THEN1410 1420 IF R$=F1$ THEN1450 1430 IF R$=F7$ THEN2030 1440 GOTO1410 1450 OPEN3,4 1460 PRINT#3,CHR$(14);TAB(11)"CHECKING ACCOUNT" 1470 PRINT#3,TAB(13);DZ$;CHR$(15) 1480 PRINT#3:PRINT#3 1490 PRINT#3,"BEGINNING BALANCE";TAB(50-LEN(BB$));BB$ 1500 PRINT#3 1510 IF ND=0 THEN1550 1520 FORI=1TO ND 1530 PRINT#3,"DEPOSIT ";D$(I,1);TAB(54-LEN(D$(I,2)));D$(I,2) 1540 NEXTI 1550 PRINT#3 1560 PRINT#3,"LESS BANK CHARGES";TAB(29-LEN(BC$));BC$ 1570 IF OD=0 THEN1590 1580 PRINT#3:PRINT#3,"OTHER DEDUCTIONS";TAB(30-LEN(OD$));OD$ 1590 PRINT#3:CN=FCN 1600 FOR I=1TO NC 1610 IF C(I)<1 THEN1670 1620 C$(I,1)=LEFT$(C$(I,1),30) 1630 IF CN>999 THEN K=7:GOTO1650 1640 K=8 1650 PRINT#3,"CK#";CN;C$(I,1);TAB(K-LEN(C$(I,2)));C$(I,2) 1660 CN=CN+1 1670 NEXT I 1680 PRINT#3:PRINT#3,"*** TOTAL CHECKS ***";TAB(26-LEN(TC$));TC$ 1690 PRINT#3:PRINT#3,"ENDING BALANCE";TAB(53-LEN(EB$));EB$ 1700 CLOSE3:GOTO2030 1710 REM ** 1720 REM *** SUBROUTINES 1730 REM ** 1740 REM----ALIGN DECIMAL POINTS 1750 G$=STR$(INT(G))+"."+RIGHT$(STR$(G*100),2) 1760 RETURN 1770 REM----SET SPACING FOR PRINTOUT 1780 FOR N=1 TO SP:PRINT#3:NEXTN 1790 RETURN 1800 REM----CONVERT NUMBERS TO WORDS 1810 FOR J=1TO5:W$(J)="":NEXTJ 1820 Q$=C$(I,2):L1=(LEN(Q$))-1 1830 Q$=RIGHT$(Q$,L1):L2=L1-3 1840 CA$=MID$(Q$,1,L2):CE$=RIGHT$(Q$,2) 1850 M=1:ON L2 GOTO1920,1910,1880,1860 1860 T=VAL(MID$(CA$,M,1)) 1870 W$(1)=A1$(T)+" THOUSAND ":M=M+1 1880 T=VAL(MID$(CA$,M,1)):IF T=0 THEN1900 1890 W$(2)=A1$(T)+" HUNDRED " 1900 M=M+1 1910 T1=VAL(MID$(CA$,M,1)):M=M+1 1920 T2=VAL(MID$(CA$,M,1)) 1930 IF T1=0 THEN1960 1940 IF T1=1 THEN T3=10+T2:W$(5)=A1$(T3):GOTO1990 1950 W$(3)=A2$(T1) 1960 IF T2=0 THEN W$(5)=W$(3):GOTO1990 1970 W$(4)=A1$(T2):IF T1=0 THEN W$(5)=W$(4):GOTO1990 1980 W$(5)=W$(3)+"-"+W$(4) 1990 W$=W$(1)+W$(2)+W$(5)+" AND "+CE$+"/100" 2000 W$="*** "+W$+" ***" 2010 T=0:T1=0:T2=0 2020 RETURN 2030 END 5000 INPUT "ENTER #";C 5010 IF INT(100*C)<>100*C THEN5000 5020 PRINTC,100*C 5030 GOTO5000